var autoDelete = function(){};
autoDelete.url = W_AJAX + 'common/delete/'; // URL для удаления поля
autoDelete.manyUrl = W_AJAX + 'common/delete_by_ids/'; // URL для удаления поля
// Иньциализация удаления
autoDelete.init = function() {
  $('.autoDelete').live('click', function() {
  	if (confirm("Уверены, что хотите удалить?")) {
  	  autoDelete.remove(this);
  	}
	});
  // autoDeleteWithCheck
	$('.adwc').live('click', function() {
		autoDelete.removeWithCheck(this);
	});
};

// Отправка запроса на удаление элемента с проверкой
autoDelete.removeWithCheck = function(elem) {
  var args = arguments;
  $.post(autoDelete.url, {
		essenceType: $(elem).attr('essenceType'),
		essenceId: $(elem).attr('essenceId')
	},
	function(data) {
		if (data['result'] == 'OK') {
		  if (data['confirm_text']) {
		    if (confirm(data['confirm_text'] + "\nУверены, что хотите удалить?")) {
		      autoDelete.remove.apply(this, args);
		    }
		  }
		  else {
		    autoDelete.afterRemove(elem);
		  }
		}
		else alert(data['error']);
	}, 'json');
};

// Отправка запроса на удаление элемента
/**************************************/
/** autoDelete.remove([elem,] options)
/** elem - первый аргумент, являющейся jQuery или DOM объектом(массивом) удаляемого(ых) элемента(ов).
/** options - boolean - skipAfterRemove ? 
/** options - object 
/*********** parameters
/*********** skipAfterRemove
/**************************************/
autoDelete.remove = function(elem) {
	if(typeof elem == "undefined") return false;
	if(!(elem instanceof $) && !(elem instanceof HTMLElement)) arguments[1] = elem;
	
	var skipAfterRemove = typeof arguments[1] == 'boolean' ? arguments[1] : false,
  		options = typeof arguments[1] == 'object' ? arguments[1] : {},
		params = {essenceType: $(elem).attr('essencetype')};
		if($(elem).length > 1){
			params.essenceIds = '[' + $(elem).map(function(){ return "\"" + $(this).attr('essenceid') + "\"" }).get() + ']';
			var url = autoDelete.manyUrl;
		}else{
			params.essenceId = $(elem).attr('essenceid')
			var url = autoDelete.url;
		}
		params = $.extend(params, options.parameters);
  $.post(url, params,
	function(data) {
  	if (data['result'] == 'OK') {
		  
			if (data['confirm_text']) {
		    data['confirm_text'] += "\nУверены, что хотите удалить?";
					App.confirm(data['confirm_text'], function(){
						$.post(autoDelete.url, $.extend(params, {needCheck: 0}), function(objData){
							console.log(1);
							if ( !(skipAfterRemove || options.skipAfterRemove) ) {console.log(2);autoDelete.afterRemove(elem);}
							if(options.callback) {console.log(3);options.callback.call();}
						}, 'json');
					});
		    //}
		  }
		  else {
				if ( !(skipAfterRemove || options.skipAfterRemove) ) autoDelete.afterRemove(elem);
				if(options.callback) options.callback.call();
		  }			

		} else alert(data['error']);
	}, 'json');
};










autoDelete.afterRemove = function(elem) {
  // Действия после удаления
	if ($(elem).is('.autoDeleteBlock')) $(elem).remove();
	else if ($(elem).parents('.autoDeleteBlock').length) $(elem).parents('.autoDeleteBlock:first').remove();
  	else if ($(elem).closest('.popups > li').length)
  		$(elem).closePopup();
	else $(elem).remove();
	
	//eip.updateList(elem).remove();
};

$().ready(function() {
  autoDelete.init();
});